import time

from selenium import webdriver
from selenium.webdriver import Keys
from selenium.webdriver.common.by import By
from selenium.webdriver.firefox.service import Service
import unittest
from selenium.webdriver.support.select import Select


class MyTestCase(unittest.TestCase):
    driver = None

    @classmethod
    def setUpClass(cls) -> None:
        service = Service(executable_path="../driver/geckodriver.exe")
        cls.driver = webdriver.Firefox(service=service)

    def test_alert(self):
        """测试 网页中句柄的问题"""

        self.driver.get(
            "file:///D:/CourseWare/%E8%AF%BE%E4%BB%B6/Study%E8%AF%BE%E4%BB%B6/%E7%AC%AC%E4%B8%89%E9%98%B6%E6%AE%B5/testhtml/exam/index.html")

        # 通过元素定位  定位 网页中的超链接实现点击操作
        self.driver.find_element(By.LINK_TEXT, "继续提供房源信息").click()

        # 如果在一个网页中 涉及到了 句柄的  多个窗口的 问题 ，我们要 通过 获取页面中 所有的句柄来进行切换到自己所需要操作的网页中
        window_handles = self.driver.window_handles
        print(window_handles)



        # 如果 将网页中的 所有的句柄全部获取出来 我们只需要 通过 switch_to 来 切换句柄即可
        self.driver.switch_to.window(window_handles[1])

        # 在写脚本时  要注意 脚本的一个时序性  依赖性

        # 点击页面中的  356  复选框
        self.driver.find_element(By.NAME, "c3").click()

    @classmethod
    def tearDownClass(cls) -> None:
        # cls.driver.close() # 只会 关闭一个 标签页
        # cls.driver.quit()  # 推出浏览器  全部关闭所有的标签页

        pass


if __name__ == '__main__':
    unittest.main()
